home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / REFERENC / TPR / TPR2.TXT < prev    next >
Text File  |  1992-10-19  |  76KB  |  1,474 lines

  1.                                    Chapter 2
  2.                                     of the
  3.                             Turbo Pascal Reference
  4.  
  5.                     The Integrated Development Environment
  6.  
  7.  
  8. This chapter is part of the Turbo Pascal Reference electronic freeware book (C)
  9. Copyright 1992 by Ed Mitchell.  This freeware book contains supplementary
  10. material to Borland Pascal Developer's Guide, published by Que Corporation,
  11. 1992.  However, Que Corporation has no affiliation with nor responsibility for
  12. the content of this free book.  Please see Chapter 1 of the Turbo Pascal
  13. Reference for important information about your right to distribute and use this
  14. material freely.  If you find this material of use, I would appreciate your
  15. purchase of one my books, such as the Borland Pascal Developer's Guide or
  16. Secrets of the Borland C++ Masters, Sams Books, 1992.  Thank you.
  17.  
  18.  
  19.  
  20. Using the Integrated Development Environment
  21.  
  22.      Turbo Pascal provides two independent methods of creating Pascal programs.
  23. You can use your own editor and the Turbo Pascal stand-alone compiler, or you
  24. can use the integrated development system that incorporates a powerful text
  25. editor, Pascal compiler, linker and debugging system all within a convenient
  26. and efficient framework for program development.  This integrated system is
  27. called the Integrated Development Environment or IDE.
  28.      From the user's standpoint, the IDE looks like a text editor that just
  29. happens to include a Compile command and associated Debug functions.  This
  30. means you never have to switch gears - you type in your source, compile, fix
  31. errors and compile again without having to switch back and forth from the
  32. editor to the compiler.  During program execution, the IDE provides a source
  33. level debugger.  Using the IDE debugger, you can move the editor cursor to
  34. specific source lines and set break points to temporarily stop program
  35. execution, and then single step through the source, checking the values of
  36. variables in the Watch window.  You can even change the values of variables
  37. during program execution.
  38.  
  39. When to Use the IDE?
  40.      Generally speaking, you will want use the IDE as much as possible. 
  41. However, depending upon the size of your program and the amount and type of
  42. memory available on your computer, your application may exceed the constraints
  43. imposed by the IDE.  If your computer has Extended Memory (EMS) RAM, the IDE
  44. will be able to compile and execute extremely large programs.  If your computer
  45. has only 640k of RAM, you can still develop sizeable applications but you may
  46. encounter Out of Memory errors.  When this occurs, you can separate the program
  47. into smaller units or use the standalone compiler package.
  48.      The standalone compiler is included in the Turbo Pascal 6.0, 7.0 and
  49. Borland Pascal pacakges, and includes a compiler, linker and Make facility. 
  50. Turbo Pascal 6.0 Professional and Borland Pascal also include the Turbo
  51. Debugger and Turbo Profiler (see Chapters 7 and 8 of the Borland Pascal
  52. Developer's Guide for details).  The standalone compiler is described in
  53. Chapter 10, "Turbo Pascal Standalone Programs" of the Developer's Guide.
  54.  
  55.  
  56. Starting Turbo Pascal's IDE
  57.      Assuming that you have installed the Turbo Pascal system into subdirectory
  58. \TP, as shown in this example, you will type Turbo to access the IDE:
  59.      C:\TP> TURBO
  60. If you have installed Turbo Pascal to some other directory then be certain that
  61. you have either placed that directory into your DOS Path statement or that you
  62. have changed directories to that the Turbo Pascal directory.
  63.      After initialization, the IDE displays a menu bar across the top of the
  64. screen, and a status line at the bottom of the screen.  The following text
  65. describes the use of the Turbo Pascal 6.0 IDE; however, the Turbo Pascal 7.0
  66. and Borland Pascal IDE's are nearly identical.  Some of the menu items have
  67. been slightly rearranged from Turbo Pascal 6.0.  
  68.  
  69.  
  70. Selecting Menu Items
  71.      You can select items from the menu bar in several ways.  The easiest is to
  72. use the mouse;  move the mouse pointer to the item you wish to select and click
  73. the mouse button.  A pulldown menu of selections will appear and you can drag
  74. the mouse (by holding down the mouse button) to whichever selection you desire.
  75. Or, you can move the mouse pointer, without holding down any buttons, and then
  76. double click on the appropriate selection.  Figure 2.1 shows the IDE menu bar,
  77. with the file Compile options menu dropped down below.
  78.      Using the keyboard, you can access a pulldown menu by pressing the Alt
  79. key, and simultaneously pressing the highlighted letter of the menu item. 
  80. Then,use the arrow keys to move the menu cursor up or down amongst the items. 
  81. Pressing the Enter key selects the item that the cursor located on.
  82.      You can also select pulldown menu items by pressing the keyboard key that
  83. matches the highlighted letter on the menu, or by pressing the short cut key
  84. shown to the right of some of the menu items.
  85.      Lastly, if you prefer, you can access the menu bar by pressing the F10
  86. key.  This highlights the File menu at the upper left.  Use the left or right
  87. arrow keys to move the menu bar cursor to other menu bar selections.  Pressing
  88. the Enter key causes the selected menu to be displayed.
  89.  
  90. ***02tpr01.pcx***
  91. Figure 2.1.  An illustration of the IDE, showing the Compile options menu
  92. overlapping an edit window.
  93.  
  94.  
  95. Editing, Saving and Compiling a Program
  96.      To create a new program, select the New function from the File menu.  An
  97. empty window will appear on the screen, with the title NONAME00.PAS centered in
  98. the upper window border.  The text cursor will appear at the upper left corner
  99. of the window.
  100.      You may now type a new Pascal program directly into the IDE editor.  Since
  101. its become a tradition to learn a new language by writing a "Hello World"
  102. program, we'll do the same in this simple example: 
  103.  
  104.      Program Hello;
  105.      begin
  106.           Writeln('Hello, world');
  107.      end;
  108.  
  109. After typing this program into the editor, you can save it by choosing Save As
  110. from the File menu.  A dialog box will display asking you to enter the name of
  111. the file where this program should be saved.  Type a program file name, and
  112. then either press the Tab key twice to reach the OK button, and press Enter. 
  113. Or, you can use the mouse to double click on the OK button.  Either way, the
  114. result is the same:  your newly entered program is saved to disk.
  115.  
  116.  
  117. Dialog Boxes
  118.      Dialog boxes are used throughout the IDE and all Turbo Pascal utilities
  119. for providing input and making selections.  Dialogs contain several types of
  120. input controls, including:
  121.  
  122.        Input line or edit fields for typing in text responses
  123.  
  124.        Radio buttons for selecting just one item from a group of items
  125.  
  126.  
  127.        Check boxes for enabling or disabling a large number of options
  128.  
  129.        Lists, for displaying, selecting and scrolling through lists of
  130.        information
  131.  
  132.        Buttons, such as OK or Cancel.
  133.  
  134. Most dialogs are modal  dialogs meaning that while they are displayed you
  135. cannot perform any other function than to complete the dialog box.  When the
  136. dialog is first displayed, the cursor is either visible in an input field, or
  137. some other highlight is used to indicate the current focus within the dialog. 
  138. See Figure 2.2.
  139.  
  140. ***02tpr02.pcx***
  141. Figure 2.2.  Dialog boxes are used throughout the IDE to obtain user input. 
  142. When you have finished entering or editing data in the dialog box, choose
  143. either the Okay or Cancel buttons to exit.
  144.  
  145.      For example, when the cursor is at a check box, you can see the cursor
  146. flashing between the brackets '[  ]' that delineate the check box selection. 
  147. Generally, you press the Tab key to move between dialog box controls or use the
  148. mouse to click on a particular selection.  However, groups of radio buttons and
  149. checkboxes are treated as a single control, so pressing the Tab key while
  150. within a group moves to the next control, and not the next selection within the
  151. group.  Hence, use the arrow keys to move around within a group of radio
  152. buttons or check boxes, and use the Tab key to move from one control or group
  153. to another control or group.  See Table 2.1 for a list of available dialog box
  154. controls and explanations for their usage.
  155.  
  156.  
  157. Table 2.1.  Summary of Dialog Box Navigation and Usage
  158. Tab key
  159.           Move forward to next control in sequence
  160.  
  161. Shift-Tab
  162.           Move backward to previous control in sequence
  163.  
  164. Arrow keys
  165.           Move between selections in checkboxes and radio buttons
  166.  
  167. SpaceBar
  168.           Select or deselect a radio button or checkbox item
  169.  
  170. Enter key
  171.           Select a button control
  172.  
  173. Mouse click
  174.           Enables or disables radio button and checkbox items, selects button
  175.           controls,moves the current focus to the item clicked on.
  176.  
  177. Highlight key  
  178.           Items that contain a highlighted key can be selected by pressing the
  179.           highlighted key directly, which also moves the current focus to the
  180.           selected item.
  181.  
  182. Radio buttons
  183.           Radio buttons allow one and only one item amongst a group of items to
  184.           be selected.  When you select a radio button by pressing the space
  185.           bar, or with a mouse click, or by pressing the item's highlighted
  186.           letter, any other selected radio button within the same group of
  187.           radio buttons, becomes deselected.  Within each group, only one
  188.           button at a time can be selected, much like the radio station
  189.           "preset" quick selection buttons on automobile radio receivers.  See
  190.           Figure 2.2 for an example of radio buttons.
  191.  
  192. Checkboxes
  193.           Checkboxes provide for enabling or disabling any number of items. 
  194.           Thecheckboxes are typically grouped together and you can use the
  195.           arrow keys to move amonst them.  Press the SpaceBar to select a
  196.           checkbox item, or when the item is already selected, press the
  197.           SpaceBar to clear the selection.
  198.  
  199. Input  fields
  200.           Input fields allow you to enter aribtrary text information and to use
  201.           the left and right arrow keys to move within the text, the Backspace
  202.           and Delete keys to delete text, the Home key to move to the beginning
  203.           of the field and the End key to move to the rightmost end of the
  204.           field.  Many of the fields provide horizontal scrolling, enabling you
  205.           to type text wider than the displayed input field. When this occurs,
  206.           either or both ends of the input field will display left and right
  207.           arrows to show that more text exists on either side of the input
  208.           area.  Use the left and right arrow keys to scroll through the text,
  209.           or click the mouse pointer on the arrows.
  210.  
  211. List Boxes
  212.           List boxes are used to select from a large list of items.  See figure
  213.           2.3, showing the Open file dialog of the IDE.  A typical use is for
  214.           opening a file, where the contents of the disk directory are
  215.           displayed in the list box.  If there are more items than will fit
  216.           within the list box, a scroll bar displays either on the bottom or
  217.           the right hand side of the list box.  To use a list box, use the Tab
  218.           key to move the cursor to the list box, or use the mouse to click on
  219.           an item within the list box.  Once inside the list box, you can use
  220.           the standard keyboard navigations keys to move around:  the arrow
  221.           keys, PgUp, PgDn, Home and End, and by pressing a single letter, many
  222.           lists boxes will automatically scroll to the first item beginning
  223.           with the letter that you pressed.  Once the cursor is positioned on
  224.           the correct in the list box, you can select the item by pressing the
  225.           Enter key.
  226.  
  227.  
  228. ***02tpr03.pcx***
  229. Figure 2.3.  The Open file dialog box uses a list box to display the files in
  230. the current directory.
  231.  
  232.  
  233.      Use the Ins key to toggle between insert and overstrike modes.  If you
  234. need to enter a control-key combination into an input field, you should prefix
  235. the control-key by pressing Ctrl-P and then the control-key you wish to enter. 
  236. For example, to enter ^F into an edit field, type ^P^F.
  237.      Lastly, some input fields provide access to previously entered values by
  238. displaying a history list.  For example, when opening a file in the IDE, you
  239. may wish to switch back to the file that you had previously worked on.  Input
  240. fields that allow you to do this display a downwards pointing arrow at the
  241. right most end.  By selecting the arrow icon with the mouse, or by pressing the
  242. down arrow key, a small list box of previous inputs drops down below the input
  243. field where you can quickly choose data that was previously entered.  Move the
  244. highlight bar to the desired item and press the Enter key, or use the mouse to
  245. select the item from the history list.
  246.  
  247.  
  248. Using the Editor
  249.      The IDE's editor is where you will spend most of your time, typing new
  250. code, editing existing programs, and fixing program bugs or defects.  You
  251. access the editor by selecting New from the File menu, or by opening an
  252. existing file, also from the File menu.  Alternatively, you can open an
  253. existing file by specifying a filename on the command line when you first start
  254. the IDE by typing:
  255.  
  256.      C:\TP> TURBO SHELL.PAS
  257.  
  258. which starts up Turbo and loads the existing program SHELL.PAS for editing. 
  259. Borland Pascal users should type BP to access the Borland Pascal IDE.
  260.      Once in the editor, a variety of keyboard commands, mouse movements and
  261. menu selections provide a full featured programmer's editing system.  As you
  262. type text into the text editor window, the cursor moves across the screen and
  263. to the right.  Press the Enter key when you have reached the end of your line,
  264. although the editor will scroll horizontally if you need to type source code or
  265. data files that are wider than the screen's width.
  266.      Text entry can occur in either Insert mode or Overstrike mode.  In Insert
  267. mode, new text is inserted in front of existing text, pushing it further along
  268. the line.  In overstrike mode, text that you type is written over or replaces
  269. any other text at the cursor's location.  You can toggle back and forth between
  270. insert and overstrike modes by pressing the Ins key (or for WordStar fans, by
  271. pressing Ctrl-V).
  272.  
  273.  
  274. Navigating in the Editor
  275.      A horizontal scroll bar displays the current position of the file,
  276. relative to the start and end of its lines, and a vertical scroll bar displays
  277. the current position of the file, relative to the first and last lines in the
  278. file.  Each scroll bar displays a square marker, which you can drag with the
  279. mouse to rapidly move to other locations in the file.  To move line by line,
  280. press the up or down arrow keys, or click on the up or down arrow icons on the
  281. scroll bar.  To page through the file, a screenful at a time, press the PgUp or
  282. PgDn keys, or click the mouse on the empty space between the scroll bar marker
  283. and the top or bottom of the scroll bar (or left and right sides if clicking on
  284. the horizontal scroll bar).
  285.      Table 2.2 summarizes the editor keyboard commands.  If you are familiar
  286. with older versions of WordStar, or Borland's SideKick, nearly all of the
  287. original ctrl-key combinations are also supported in the IDE and are shown in
  288. the table.
  289.  
  290.  
  291. Table 2.2.  Editor Navigation Keystrokes.    
  292. Up arrow or Ctrl-E  
  293.           Move up one line
  294.  
  295. Down arrow or Ctrl-X
  296.           Move down one line
  297.  
  298. Left arrow or Ctrl-S
  299.           Move left one character
  300.  
  301. Right arrow or Ctrl-D
  302.           Move right one character
  303.  
  304. Ctrl-Left arrow or Ctrl-A
  305.           Move one word to the left
  306.  
  307. Ctrl-Right arrow or Ctrl-F
  308.           Move one word to the right
  309.  
  310. PgUp or Ctrl-R
  311.           Move up one screen full
  312.  
  313. PgDn or Ctrl-C
  314.           Move down one screen full
  315.  
  316. Home
  317.           Move to beginning of current line
  318.  
  319. End
  320.           Move to the end of the current line
  321.  
  322. Ctrl-W
  323.           Scroll the screen up by one line   
  324.  
  325. Ctrl-Z
  326.           Scroll the screen down by one line
  327.  
  328. Ctrl-Home
  329.           Move to the top of  current edit window
  330.  
  331. Ctrl-End
  332.           Move to the bottom of the current edit window
  333.  
  334. Ctrl-PgUp or Ctrl-Q-R
  335.           Move to the beginning of the file
  336.  
  337. Ctrl PgDn or Ctrl-Q-C
  338.           Move to the end of the current file
  339.  
  340. Ctrl-Q-B
  341.           Move to the beginning of a selected text block
  342.  
  343. Ctrl-Q-K
  344.           Move to the end of a selected text block
  345.  
  346. Tab or Ctrl-I
  347.           Moves to the next tab stop on the line
  348.  
  349. Ctrl-O-I
  350.           Switches between tabs every 5 characters or every 8 characters.  You
  351.           can also set tabs to any value between 2 and 16 using the
  352.           Options/Environment/Editor menu selection. 
  353.  
  354.  
  355. Selecting Text and Text Block Operations
  356.      By selecting text, you can perform operations such as Cut and Copy on
  357. entire text blocks.  To select text with the mouse, move the mouse pointer to
  358. the start of the text block, and then, while pressing down on the mouse button,
  359. drag the mouse to the end of the text block that you wish to select.  The text
  360. will be highlighted as you drag the mouse.
  361.      Using the keyboard, you select text by pressing the Shift key, and then,
  362. while simultaneously holding down the Shift key, press keyboard navigation keys
  363. including the arrows, PgUp and PgDn.  As you move the cursor with the Shift key
  364. depressed, your selection is highlighted.
  365.      Text blocks may also marked by moving the cursor to the beginning of the
  366. block, pressing Ctrl-K-B, to mark the block's beginning, and then pressing
  367. Ctrl-K-K to mark the block's end.
  368.      Turbo Pascal maintains a "clipboard" to which selected text can be cut or
  369. copied.  When an item is Cut, it is deleted from the current file and placed on
  370. the clipboard.  An item that is copied remains in the current file and a copy
  371. of the selection is placed on to the clipboard.  Use Cut to delete text blocks
  372. or temporarly move them to the clipboard for later pasting to another location.
  373. Use Copy to duplicate text without deleting it.
  374.      To choose either Cut or Copy, select the desired operation from the Edit
  375. pulldown menu or press the keystroke combinations shown to the right of the
  376. menu selections:  Shift-Del to Cut the text, Ctrl-Ins to copy the text to the
  377. clipboard.
  378.      The contents of the clipboard may be pasted to a new location, or even
  379. another file, by choosing the Paste command from the Edit menu, or by pressing
  380. Shift-Ins.  Use the Show Clipboard command to look at the current contents of
  381. the clipboard.
  382.      If you wish to cut out a section of marked text without copying to the
  383. clipboard, choose the Clear command from the Edit menu.  Use caution:  When you
  384. cut text with the Clear command, the text is gone forever - it is not copied to
  385. the clipboard and there is no way to undo this operation.  One use of the Clear
  386. command is to select text within the Show Clipboard window itself, and then use
  387. Clear to selectively delete a portion of the Clipboard.
  388.      The Editor also contains a set of WordStar compatible text block
  389. manipulation routines that perform similar functions to using the clipboard for
  390. block copying, moving and deleting.  For example, when a text block is
  391. selected, you can move the cursor to some other location in the file, and press
  392. Ctrl-K-V and the selected text block will move to the location of the cursor
  393. and will remain highlighted.  If you move the cursor and press Ctrl-K-C, a new
  394. copy of the selected text is inserted.  Other block operations are shown in
  395. Table 2.3.
  396.  
  397.  
  398. Table 2.3.  Table of Text Block Operations
  399. Shift-Del 
  400.           Cuts the selected text from the file and places it on the clipboard.
  401.  
  402. Ctrl-Ins  
  403.           Places a copy of the selected text on to the clipboard.
  404.  
  405. Shift-Ins 
  406.           Pastes the contents of the clipboard at the current cursor location.
  407.  
  408. Ctrl-K-B  
  409.           Sets the current cursor location as the start of text block.
  410.  
  411. Ctrl-K-K  
  412.           Sets the cursor location as the end of a text block.  Using Ctrl-K-B
  413.           and Ctrl-K-K, you can quickly delimit a large block of text.  Move to
  414.           the start of the block, press Ctrl-K-B, then move to the block's end
  415.           and press
  416.           Ctrl-K-K.  The selected block will now be highlighted.
  417.  
  418. Ctrl-K-H  
  419.           Turns off a selected block's highlighting; or turn's highlighting
  420.           back on if the selected block's highlighting was turned off by a
  421.           previous Ctrl-K-H.
  422.  
  423. Ctrl-K-C  
  424.           Copies the selected text block to the current cursor location.  To
  425.           use this function, select a text block using any of the available
  426.           methods (Ctrl-K-B and Ctrl-K-K, the mouse or Shift-direction keys). 
  427.           Then, move the cursor to the new location where you wish to make a
  428.           copy of the selected text.  Press Ctrl-K-C and the selected text will
  429.           be copied to this location.
  430.  
  431. Ctrl-K-V  
  432.           Like Ctrl-K-C, except that the entire block is moved from the old
  433.           location to the new location indicated by the cursor.
  434.  
  435. Ctrl-K-P  
  436.           Pressing Ctrl-K-P causes the selected text block to printed.
  437.  
  438. Ctrl-K-W  
  439.           Use Ctrl-K-W to write the selected block to a disk file.  After
  440.           pressing Ctrl-K-W, a prompt will display asking for the destination
  441.           filename.
  442.  
  443. Ctrl-K-R  
  444.           Use Ctrl-K-R to read in a new file and insert it into the current
  445.           file at the location of the cursor.  After pressing Ctrl-K-R a prompt
  446.           will display asking for the name of the file to insert.
  447.  
  448. Ctrl-K-I  
  449.           Pressing Ctrl-K-I slides all of the selected text one space to the
  450.           right.  Use Ctrl-K-I and Ctrl-K-U, as needed, to adjust the
  451.           indentation of program source.
  452.  
  453. Ctrl-K-U  
  454.           Pressing Ctrl-K-U slides all of the selected text one space to the
  455.           left.
  456.  
  457.  
  458. Specific Editing Commands
  459.      Other editing command are provided for searching for specific text (see
  460. The Search Menu), and character, word and line deletion.  Table 2.4 summarizes
  461. these other functions.
  462.  
  463.  
  464. Table 2.4.  Editing Commands
  465. Del or Ctrl-G       
  466.           Deletes the character to the right of the cursor
  467.  
  468. Backspace or Ctrl-H 
  469.           Deletes the character to the left of the cursor
  470.  
  471. Ctrl-Q-Y       
  472.           Deletes from the cursor to the end of the line
  473.  
  474. Ctrl-Y    
  475.           Deletes the entire line that cursor is on
  476.  
  477. Ctrl-Q-L       
  478.           Restores a previously deleted line (from any of the delete commands)
  479.  
  480. Ctrl-T    
  481.           Deletes the entire word to the right of the cursor
  482.  
  483. Ctrl-N    
  484.           Inserts a blank line
  485.  
  486. Ins or Ctrl-V
  487.           Toggles between insert and overstrike typing modes
  488.  
  489. Ctrl-O-I  
  490.           Toggles automatic indentation on or off
  491.  
  492. Ctrl-Q-F       
  493.           Find command (See The Search Menu).
  494.  
  495. Ctrl-Q-A       
  496.           Find & replace command (See The Search Menu)
  497.  
  498. Ctrl-L    
  499.           Search again for last Find string (See The Search Menu)
  500.  
  501. Ctrl-K-n       
  502.           Set marker #n at current cursor location (n is from 0 to 9).
  503.  
  504. Ctrl-Q-n  
  505.           Jump to marker #n.
  506.  
  507. Ctrl-Q-[ and Ctrl-Q-]
  508.           When the cursor is located on a parenthesis, pressing one of these
  509.           keystroke combinations will find and reposition the cursor to the
  510.           matching parenthesis.
  511.  
  512.  
  513. The IDE Help System
  514.      The IDE provides a convenient on-line help system, providing fully indexed
  515. help to both the IDE and the Pascal programming language.  The IDE's help
  516. system is also context sensitive meaning that you can directly select help
  517. corresponding to the current menu or dialog selection, or even look up Pascal
  518. keywords based on the location of the cursor.
  519.      To use Help, press Alt-H or select the Help item from the menu bar.  You
  520. can obtain help as follows:
  521.  
  522.  
  523. Function       Shortcut key
  524. Contents
  525.           Display a book-like table of contents, organized by general subjects,
  526.           such as "Editor".
  527.  
  528. Index               Shift-F1
  529.           Displays a detailed index of every item in the help system.  This
  530.           includes every entry, including IDE functions as well as every Pascal
  531.           language keyword, procedure and function, including the Turbo Vision
  532.           object oriented windowing interface.
  533.  
  534. Topic Search        Ctrl-F1
  535.           To look up information about a specific Pascal keyword, procedure or
  536.           function, put the cursor somewhere on the the word for which you need
  537.           help, and then choose Topic Search.  The IDE Help system will
  538.           immediately display a window of information about the keyword that
  539.           the cursor is located on.
  540.  
  541. Previous Topic Alt-F1
  542.           The help system is a hyper-text system.  Wherever you see highlighted
  543.           text within the help text, if you click on the highlighted text, the
  544.           help system will zip across to that subject heading.  To return to a
  545.           previous heading, choose Previous Topic.
  546.  
  547.  
  548. Copying Text from the Help system
  549.      A unique feature of the IDE Help system is the ability to copy sections of
  550. text from the on-line help message and paste that text into the IDE Editor
  551. window.  For example, if you are trying to match up a list of parameters in a
  552. function call, you can easily copy the function header from the help text and
  553. paste it right into your program.  Many of the help items include sample
  554. program source which can be easily copied to your programs.
  555.      To copy text, select the text from the help window, using either the mouse
  556. or the usual keyboard selection keys.  Then choose the Copy option from the
  557. Edit pulldown.  After closing the Help window, move to the appropriate location
  558. in the Editor window and choose Paste.  
  559.  
  560.  
  561. The File Menu
  562.      The File menu is used for getting existing program files, saving files to
  563. disk, creating new editor files, and printing.
  564.  
  565. File Menu/Open
  566.      To open an existing file, you can either specify the filename on the
  567. command line when you start Turbo Pascal, or you can use the Open command from
  568. the File menu.  The Open command displays a standard file dialog, showing
  569. matching files in the current directory, and providing a prompt line where you
  570. can enter a new filename.  Figure 2.3 shows the Open A File dialog.
  571.      Like most dialogs, you can either use the mouse to click in a particular
  572. control, or use the Tab key to move from one control to the next.  Normally,
  573. you will likely type the name of the file you wish to open, or press Tab to
  574. move to the Files listbox.  In the list box, you can use the arrow keys - or
  575. the mouse - to point to a specific file - and then choose the Okay or Replace
  576. buttons to open the file.  To move quickly through the Files listbox, use the
  577. PgDn or PgUp keys, mouse clicks on the scroll bar, or type single letter keys
  578. to quickly jump to the first filename beginning with that letter.  Lower case
  579. letters will match to filenames, and upper case letters will quickly jump to
  580. subdirectory names.
  581.      The difference between Okay and Replace is that when you choose Okay, the
  582. IDE will create a new editor window before opening the file.  This let's you
  583. have multiple files visible in separate edit windows at the same time.  If you
  584. choose Replace, the file will be loaded into the existing edit window, or if
  585. there are multiple edit windows, the file will load into the currently active
  586. window.
  587.      When the dialog first appears, the cursor is initially located in the Name
  588. input field with the filename pattern *.PAS highlighted.  You can delete this
  589. pattern by pressing any key and typing a specific filename, or you can type a
  590. new filename pattern using the standard DOS ? and * wildcard characters to
  591. display a new list of files in the Files list box.  You can also change to a
  592. different subdirectory by typing the subdirectory pathname in the Name field;
  593. however, this only changes the default directory temporarily.  Use the Change
  594. dir command on the File menu to change the default directory for the entire
  595. time that you are using the IDE.
  596.      If you've previously opened other files, then the down arrow icon at the
  597. right of the Name field will display a list box showing the previous filenames.
  598. This is a quick way to reopen a file that you had used previously.
  599.  
  600.  
  601. File Menu/New  
  602.      Choose New to open a new, empty edit window and begin typing a new program
  603. file.  The new edit window will have the default name NONAMExx.PAS, where xx is
  604. from 00 to 99.
  605.  
  606.  
  607. File Menu/Save functions
  608.      To save the contents of an edit window to the disk, choose one of the Save
  609. commands:  Save, Save as, or Save all.
  610.      If you have been typing a new file, or wish to save the edit window to a
  611. new filename, choose the Save as menu item.  At the prompt, you can enter a new
  612. filename where the contents of the edit will be saved.
  613.      Choose Save to quickly save the active edit window to disk, using the name
  614. that has already been assigned to the file.  If the edit window has the name
  615. NONAMExx.PAS, the IDE will automatically display the Save as prompt asking you
  616. to specify a unique name for the file.  You can press F2 as a shortcut key, to
  617. perform a quick save while editing.
  618.      The Save all menu item saves each and every one of the edit windows that
  619. have been modified.
  620.  
  621. File Menu/Change dir
  622.      Use Change dir to select a new disk drive and subdirectory to become the
  623. current working subdirectory.  Change dir displays a dialog box with a prompt
  624. field for typing a new directory, and includes a list box display of the disk's
  625. subdirectory structure.  You can choose a new name by typing the subdirectory
  626. name or by moving to the Directory Tree list box and selecting fromn the
  627. directories that are displayed.  After selecting a new directory with Change
  628. dir, the new directory becomes the default directory.
  629.  
  630. File Menu/Print
  631.      Use the Print function to copy the contents of the active window to the
  632. DOS PRN: printer device (usually equivalent to LPT1:).  If you wish to print
  633. only a subsection of text, first select the text and then use the Ctrl-K-P
  634. editor command keys
  635.  
  636. File Menu/Get Info
  637.      Choose Get Info to obtain information about the current IDE environment,
  638. including the size of the compiled code, the amount of memory required for data
  639. storage, the number of lines in the program's source, and the amount of low
  640. memory and EMS memory used by DOS and Turbo Pascal.
  641.  
  642. File Menu/DOS Shell
  643.      Choose DOS Shell to temporarily leave Turbo Pascal and return to the DOS
  644. command line prompt.  From the DOS command line, you can use all of the
  645. standard DOS commands and even run other programs provided that they fit within
  646. the available memory.  To return to Turbo Pascal, type Exit at the command line
  647. prompt.
  648.  
  649. File Menu/Exit
  650.      To exit from Turbo Pascal choose the Exit option or press the Alt-X
  651. shortcut key combination.  If you have not saved any of the files that you have
  652. modified, Turbo Pascal will prompt you, asking if you want to have them saved
  653. before exitting.
  654.  
  655. The Search Menu
  656.      The Search menu provides functions for locating text quickly,
  657. automatically replacing existing text with new text, jumping to specific line
  658. in the text, and find the location of errors.
  659.  
  660. Search Menu/Find (Ctrl-Q-F)
  661.      To search through the current file, choose the Find option and type the
  662. text you wish to locate at the Text to find field.  Press Enter to accept the
  663. default options, shown below the input field, and the IDE will quickly scan
  664. through the file looking for the text.  
  665.      By default, Find matches the text, ignoring the case of both the pattern
  666. and the text in the edit window.  In other words, lower case text will match
  667. upper case text.  Find also has a neat shortcut for text entry:  In the Text to
  668. find field, pressing the right arrow key copies characters, one by one, from
  669. the current position in the edit window.  
  670.      The Find dialog presents a variety of options as to how the search will be
  671. performed.  These options are shown in Table 2.3.
  672.  
  673.  
  674. Table 2.3.  Find Dialog Options.
  675. Case  sensitive
  676.           If checked, any lower case letters that you enter in the search
  677.           pattern will match only lower case letters, and upper case letters
  678.           will match only upper case letters.  
  679.  
  680. Whole words only
  681.           By setting this option, Find will only match an item if it appears as
  682.           a separate word.  If you look for the word "win" with this option
  683.           set, you will only find occurrences of "win" as a standalone word,
  684.           and you will not locate any occurrences of words like "window" or
  685.           "winner".
  686.  
  687. Regular expression
  688.           Choose this option to enter a fairly complex "text searching
  689.           expression", known as a regular expression.  When this option is set,
  690.           you can embed special characters into the search pattern that are
  691.           interpreted according to the the following rules:
  692.           ^
  693.           Placing a circumflex at the start of the string forces the search
  694.           pattern to only match items that begin at the start of a line.
  695.           $
  696.           The dollar sign is the opposite of the circumflex and forces the
  697.           pattern to  match items that fall at the end of a line.
  698.           .
  699.           Use a period to match any character value.  This is equivalent to the
  700.           DOS ? wildcard for matching any single character in the string.
  701.           *
  702.           The asterisk matches an entire string of characters (like the DOS *
  703.           wildcard) and is used, for example, in looking for quickly matching
  704.           any characters before or after a specific character set:  CA* matches
  705.           Call, California, Cauliflower and even just CA.  The asterisk, unlike
  706.           the + symbol, will even match if there are no characters following
  707.           the primary search string.
  708.           +
  709.           Behaves like the asterisk, except that there must be at least one
  710.           character for the + symbol.  CA+ does not match CA but does match
  711.           Call or California.
  712.           [ ]
  713.           Use brackets to specify a list of single characters that may appear
  714.           in this position.  For example, ABC[DEF] will match the following:
  715.           ABCD, ABCE, ABCF, but not ABCG or any other character not including
  716.           D, E or F in the 4th position.
  717.                You can also search for a character match not appearing in the
  718.           bracketed list by placing a circumflex as the first character. 
  719.           ABC[^DEF] means find all strings beginning with ABC and not ending in
  720.           D, E or F.
  721.           -
  722.           To match a range of character values, place a hyphen between the
  723.           first and last characters in the range.  ABC[D-F] is equivalent to
  724.           ABC[DEF] because this hyphenated list matches all characters
  725.           beginning with D and up to and including F.
  726.           \
  727.           When you need to search for one of the special characters, ^, $, .,
  728.           *, + or brackets, prefex the special character with the backslash. 
  729.           Example, /$ lets you search for the dollar sign character.
  730.  
  731. Direction
  732.           Choose Forward to search towards the end of the file or Backward to
  733.           search towards the beginning of the file.
  734.  
  735. Scope
  736.           You can confine the search to just the area of text that is currently
  737.           selected.  Normally the search will take place over the entire text
  738.           file or selection.
  739.  
  740. Origin
  741.           Choose From cursor to start the search at the current cursor
  742.           location, or choose Entire Scope to search over the entire file or
  743.           the entire selected region.
  744.  
  745. Search Menu/Replace (Ctrl-A)
  746.      Use the Replace command to replace existing text with new text.  The
  747. Replace function displays a dialog box resembling the Find dialog box, except
  748. for the addition of a New text field, a Prompt on replace option, and a Change
  749. All button.
  750.      To use Replace, type in text to search for at the Text to find field, a
  751. replacement string at the New text field, and then choose Ok.  The default
  752. operation is to stop at each occurrence of the Text to find string and prompt
  753. to ask you if its okay to change this occurrence to the New text string.
  754.      If you press the Change all button, then every occurrence of the Text to
  755. find string will be changed to the New text string value.
  756.      The remaining Replace options behave the same as those in the Find dialog.
  757.  
  758. Search Menu/Search Again (Ctrl-L)
  759.      After completing a search or replace of an item, you can resume the
  760. previous search or replace by choosing Search again.
  761.  
  762. Search Menu/Go to Line Number
  763.      While you are editing, the line number that the cursor is on is displayed
  764. in the lower left corner of the editing window.  Choose Go to Line Number to
  765. quickly jump to a specific  line within the current edit window.  Go to Line
  766. Number displays a dialog box with one input field asking for the line number.  
  767.  
  768. Search Menu/Find Procedure
  769.      When you are running a program through the built-in IDE debugger, you can
  770. search for specific procedure declarations by procedure name.  This function
  771. displays a dialog box asking for the name of the procedure.  If, for instance,
  772. you type AddFiles as the procedure name to look for, Find Procedure scans
  773. through the edit window until find where AddFiles is defined.  Find Procedure
  774. does not locate instances where AddFiles is called, but only where it is
  775. specifically defined.
  776.  
  777. Search Menu/Find Error (Alt-F8)
  778.      If, while running a program, a run-time error occurs, the IDE
  779. automatically places the cursor at the location in the source where the problem
  780. occurred.  Later, during editing in the IDE edit window, to relocate the
  781. problem spot, choose Find Error and the cursor will again be placed at the
  782. location where the run-time error occurred.
  783.  
  784.  
  785. The Run Menu
  786.      The Run menu provides options to start and control execution of your
  787. program.  You can use the Run options after compiling the program (see the
  788. Compile Menu), or you can run the program directly by choosing Run.  If the
  789. program has not been compiled since the last editing changes then it will be
  790. compiled for you.   
  791. Run Menu/Run (Alt-R)
  792.      If the program source needs compiling, the Run command will invoke the
  793. compiler.  Then, your program will begin exeucution.  You can press Ctrl-Break
  794. once or twice, as needed, to stop program execution.  The IDE will then
  795. position the cursor at the location where the program was halted.
  796.      If the program is temporarily stopped during use of the built-in debugger,
  797. choose the Run command to resume program execution.
  798.      See also Run Menu/Parameters and Options Menu/Compiler, Memory sizes,
  799. Linker and Debugger for additional items that affect the execution of the
  800. program.
  801.  
  802. Run Menu/Program Reset (Ctrl-F2)
  803.      While using the debugging features of the IDE, you can completely halt and
  804. reset the program's execution by choosing this command from the Run Menu.  Once
  805. selected, you can no longer resume execution except by choosing the Run command
  806. and restarting the program from the beginning.
  807.  
  808. Run Menu/Go to Cursor (F4)
  809.      At any time that you would use the Run command to start execution of your
  810. program, you can choose Go to Cursor to execute the program up to the location
  811. of the cursor in the IDE.  Once execution reaches the cursor location, the
  812. program will stop and you can use the debugging facilities to observe the
  813. values of variables or continue debugging of the program.  Alternatively, you
  814. could set a breakpoint (see Debug/Breakpoints) and Run the program until it
  815. halted at the breakpoint.  The difference is that Go to Cursor is only a
  816. temporary breakpoint, while a set breakpoint remains until it is cleared.
  817.  
  818. Run Menu/Trace Into (F7) and Step Over (F8)
  819.      To single step execute through the source code, line by line, choose
  820. either the Trace Into or the Step Over commands.  Trace Into and Step Over
  821. operate similarly except that Trace Into will continue to execute line by line
  822. as it enters lower-level procedures that the debugger has access to, and Step
  823. Over will call the procedure but will not trace through the procedure and will
  824. not halt until the next line after the procedure call.  
  825.  
  826. Run Menu/Parameters
  827.      If your program makes use of command line parameters, you can use the
  828. Parameters command to set up the parameters for program execution.  When the
  829. program is started, these parameters are available as if they had been typed on
  830. the DOS command line.
  831.  
  832.  
  833. The Compile Menu
  834.      The compile menu is used to compile and link the executable program.  See
  835. also the Run Menu and the Options Menu for items that can affect the
  836. compilation process.
  837.  
  838. Compile Menu/Compile (Alt-F9)
  839.      Use Compile to compile the current edit window.  Use Build or Make or the
  840. Run menu's Run command when you also need to recompile other source files that
  841. will be used in the final link.
  842.  
  843. Compile Menu/Make (F9)
  844.      Use Make to compile and link a complete executable .EXE file.  Make
  845. automatically checks and compiles, if necessary, any dependent program unit
  846. files (*.TPU), external object files (*.OBJ), and even included files within
  847. units.  Whenever the Make function finds a source file that is older than the
  848. current compiled file (either the .OBJ or .TPU file), then those files are
  849. automatically recompiled so that their compiled form is brought up to date with
  850. the latest changes.  Make is a "smart" function in that it only compiles those
  851. files that need to be compiled; unchanged units are not recompiled.
  852.  
  853. Compile Menu/Build
  854.      The Build command is like Make, except that Build recompiles every
  855. dependent unit, regardless of whether or not recompilation is needed.  See also
  856. the Destination and the Primary File commands.
  857.  
  858. Compile Menu/Destination
  859.      Use this function to tell the IDE to either compile and link the program
  860. directly to memory, which is fastest, or to create an .EXE executable file on
  861. disk.  Regardless of this setting, all units that create .TPU files are always
  862. compiled to disk.  With either selection, you can run the program using the Run
  863. Menu/Run command.
  864.      Also see Options Menu/Directories.
  865.  
  866. Compile Menu/Primary File
  867.      When writing programs that make use of several units and related include
  868. files, particularly when several of them are loaded simultaneously into
  869. multiple edit windows, you need to tell the compiler which of the files is the
  870. primary or main file.  Use the Primary File command to mark which files is the
  871. main file that references all the others.  The Make and  Build commands
  872. reference this filename to determine which file owns which units, and to
  873. perform "smart" recompilation of the source.
  874.  
  875.  
  876. The Debug Menu and the Built-in Debugger
  877.      The Debug menu provides access to the built-in debugging features of the
  878. IDE.  In conjunction with the single step execution features on the Run menu,
  879. the built-in debugger let's you carefully step through your program, line by
  880. line, observing and changing variables as you proceed, and setting breaktpoints
  881. to stop execution and specific locations. 
  882.      Also see the Options/Compile and Options/Debugger features.  The options
  883. values are set, by default, to enable use of the IDE's built-in debugger. 
  884. However, its important that the Compiler Options be set to enable debugging
  885. information and usually, to retain local symbol information (see
  886. Options/Compile).  Using the Options/Debugger command you should insure that
  887. the Debugging mode is set to "Integrated" mode (the standalone debugger is
  888. described in Chapter 9).
  889.      The two features that will most often be used are the Breakpoints option,
  890. to set program stopping points, and the Watches function, to examine the values
  891. of variables.   You can change variable values using the Evaluate/Modify
  892. command.
  893. Debug Menu/Evaluate/Modify (Ctrl-F4)
  894.      Use this feature to evaluate an expression, referencing existing variable
  895. values, and optionally to assign new values to program variables during program
  896. execution.
  897.      Evaluate/Modify displays a dialog box prompting for an Expression, and
  898. displaying the evaluated result in the Result field (which is also editable). 
  899. You can type a new value or expression in the New value field and select the
  900. Modify button to update the contents of variable (must be a variable or array
  901. element) entered in the Expression field.
  902.      The expression evaluator can format the results according to the format
  903. specifiers shown inTable 2-11.  For arrays, you can specify a repeat count
  904. expression to enumerate many elements of the array by following the array or
  905. pointer name with a comma, and a repeat count expression.  For example:
  906.      XArray[0], 3
  907. displays the first 3 elements of XArray.
  908.  
  909. Table 2-11
  910. Evaluate/Modify Format Specifiers
  911. , (comma)
  912.           Is used following an array or pointer variable to specify a display
  913.           repeat count.  See the example given in the text.
  914.  
  915. C
  916.           Normally, ASCII characters in the range of 0 to 31 are displayed
  917.           using the notation #nn to indicate which ASCII value is stored in the
  918.           byte.  By adding ,C after the expression, these values will display
  919.           as actual characters.
  920.  
  921. D
  922.           Use ,D to display all integer values as decimal numbers.
  923.  
  924. Fn
  925.           Use ,Fn to change the default floating point digits display of 11
  926.           digits to the number specified by n, where n is from 2 to 18.
  927.  
  928. M
  929.           By adding ,M after an expression, the value of the expression is used
  930.           as a memory address (the expression must evaluate to a variable
  931.           address or pointer reference as if it were being used on the left
  932.           side of the := assignment operator).  Normally, the ,M format will
  933.           display one memory byte in Hex.  However, by following ,M with one of
  934.           the other format specifiers, you can display the following bytes as
  935.           if they contain an integer, real, pointer or string value.
  936.  
  937. P
  938.           By default, pointer values are displayed as Ptr(segment, offset).  By
  939.           specifying ,P after the expression, the pointer value will be
  940.           displayed as segment:offset.
  941.  
  942. R
  943.           Record variables are displayed showing the values of each field
  944.           separated by commas.  By adding ,R, the record is output to include
  945.           variable names.
  946.  
  947. S
  948.           Forces string and character values in the range 0 to 31 ASCII to
  949.           display as #nn.  When used with the ,M format, S causes the memory
  950.           bytes to be interpreted as a string.
  951.  
  952. $, H, or X
  953.           Displays all integer values as hexidecimal, such as $1A.
  954.  
  955. Debug Menu/Watches
  956.      Using the Watches function, you can add variables and expressions to a
  957. watch window, where their contents will be displayed at all times.  Selecting
  958. Watches displays a sub menu containing Add Watch, Delete Watch, Edit Watch and
  959. Remove all watches.  These functions are described below.
  960.  
  961. Debug/Watches - Add Watch (Ctrl-F7)
  962.      Choose Add Watch to type a new variable or watch expression to be added to
  963. the watch window.  Typically you will type a simple variable name, such as
  964. Filename, or pointer reference such as List^.Name, or even a record name.  You
  965. can also enter expressions, such as I*J or whatever is appropriate.
  966.      In addition to the Ctrl-F7 shortcut key for adding watch values, if the
  967. Watch window is the active or focused window, you can press the Ins key to
  968. insert watch expressions, one after another.
  969.  
  970. Debug Menu/Watches - Delete Watch
  971.      When the watch window is the active window, you can delete individual
  972. watch expressions by moving the cursor to the item to be deleted and choosing
  973. the Delete Watch item, or pressing either the Del or Ctrl-Y keys.
  974.  
  975. Debug Menu/Watches - Edit Watch
  976.      To change an existing watch expression, choose Edit Watch and type the new
  977. expression in the Edit Watch dialog prompt.  For fastest access, just move the
  978. cursor over an existing watch expression in the Watch window and press the
  979. Enter key.  This immediately displays the Edit Watch window.
  980.  
  981. Debug Menu/Watches-Remove all Watches
  982.      Use Remove all Watches to erase the contents of the Watch window.
  983.  
  984. Debug Menu/Toggle Breakpoint (Ctrl-F8)
  985.      To set a breakpoint, choose Toggle Breakpoint.  If the cursor is on a
  986. highlighted line already containing a break point, choosing Toggle Breakpoint
  987. clears that breakpoint.
  988.  
  989. Debug Menu/Breakpoints
  990.      The Breakpoints command is used to edit or add breakpoints to the list of
  991. currently active breakpoints, to delete breakpoints or to quickly locate and
  992. view the source code where a breakpoint is set.  The Breakpoints command brings
  993. up a dialog box showing the current list of breakpoints (the line number where
  994. its set and any conditions assigned to the breakpoint), and a set of buttons to
  995. perform operations on the list.
  996.  
  997. Edit Breakpoints Button
  998.      Choose the Edit Breakpoints button to change an existing breakpoint or to
  999. add a new one.  Edit Breakpoints displays a subdialog on top of the Breakpoints
  1000. dialog with the following fields:
  1001.  
  1002.        Condition field: You can enter a conditional test in this field, such as
  1003.        I>10, which limits the breakpoint to having an effect only when the
  1004.        variable I is greater than 10.
  1005.  
  1006.        Pass count:  By entering a value in the Pass count field, the break
  1007.        point will be skipped this number of times before actually stopping at
  1008.        the break point.  This feature is especially useful when debugging items
  1009.        in the middle of a loop.
  1010.  
  1011.        Filename:  This is the name of the source file that contains this
  1012.        breakpoint.
  1013.  
  1014.        Line number:  Specifies the line number at which the break point is
  1015.        located.
  1016.  
  1017.  
  1018. Delete Button
  1019.      Within the list of breakpoints, move the highlight bar cursor to the
  1020. breakpoint you wish to delete, and then choose the Delete button.  Note that
  1021. the Breakpoints dialog has no Cancel button so that any breakpoints you clear
  1022. are gone for good.
  1023.  
  1024. View Button
  1025.      To locate a specific breakpoint's source code, point to the breakpoint in
  1026. the breakpoints list and select the View button.  This switches the active
  1027. window to the file containing the breakpoint and displays the source line where
  1028. the breakpoint is set.
  1029.  
  1030. Clear All Button
  1031.      Use Clear All to erase all breakpoints from the program.
  1032.  
  1033.  
  1034. The Options Menu
  1035.      The options menu provides a way to set compiler, linker, and debugger
  1036. options, and to establish default directories and memory allocations.  You can
  1037. also customize various features of the IDE, including startup defaults, color
  1038. selections, mouse behaviour and so on.
  1039.  
  1040. Options Menu/Compiler
  1041.      The Compiler Options are shown in Table 2.4  Many of these options can
  1042. also be set using imbedded $ comment directives.  $ comnment directives are
  1043. place inside your Turbo Pascal source, as a comment.  By beginning the comment
  1044. with a $ character, a compiler option character, and then optional parameters,
  1045. you can turn various features on or off throughout the program's compilation.  
  1046. For example, to enable range checking, so that the compiler will check on array
  1047. indices before use to insure that they fall within the bounds defined for the
  1048. array, you would insert a comment into your program's source, like this:
  1049.      {$R+}
  1050. To disable range checking, you type {$R-}.  Using this feature, you can
  1051. selectively enable and disable features at various places in the program.  In
  1052. general, following the compiler directive with a + plus symbol to enable the
  1053. feature and a - minus symbol to disable the feature, or, for item requiring a
  1054. numeric parameter, follow the compiler directive with the value of the
  1055. parameter.
  1056.  
  1057.  
  1058. Table 2.4.  Compiler Options.
  1059. Force far calls ($F compiler directive)
  1060.           Normally, the compiler generates near calls for all procedure and
  1061.           functions in the current file.  You can force far call generation by
  1062.           selecting this option.
  1063.  
  1064. Overlays allowed ($O compiler directive)
  1065.           You must set this option for all units that will subsequently be
  1066.           overlaid.  Its also okay to set this option for units that are not
  1067.           overlaid as it merely adds some additional run time checks to the
  1068.           generated code.
  1069.  
  1070. Word align data ($A compiler directive)
  1071.           Normally, the compiler generates byte aligned data assignments. 
  1072.           Setting this option forces the compiler to generate word aligned
  1073.           assignments, so that if one value ends on an odd byte, the compiler
  1074.           will skip a byte to insure that the next assignment is made to an
  1075.           even byte position.  The 80x86 CPUs, including the 8086, operate
  1076.           slightly faster when fetching word-aligned data than when fetching
  1077.           byte aligned data.
  1078.  
  1079. 286 instructions ($G compiler directive)
  1080.           Compiles using the 80286 instruction set.  Programs created with this
  1081.           option will not run on 8088 or 8086 processors.
  1082.  
  1083. Range checking ($R compiler directive)
  1084.           Range checking can be performed on all array and string subscript
  1085.           values.  If the index is out of range, then a run time error occurs
  1086.           and the program halts.  Set this option to enable range checking, and
  1087.           clear this option to disable range checking.  Programs may run
  1088.           noticeably faster with range checking turned off.
  1089.  
  1090. Stack checking ($S compiler directive)
  1091.           When this option is set, the compiler generates extra code for every
  1092.           procedure and function call to insure that adequate memory remains in
  1093.           the stack area.  If the call would cause the program to run out of
  1094.           memory, the program is halted with a run-time error.
  1095.  
  1096. I/O checking ($I compiler directive)
  1097.           The default setting is to have the compiler check for input/output
  1098.           errors on all input/output operations, such as reading or writing to
  1099.           a file.  However, usually you will want to have your own checks for
  1100.           such errors so you will want to disable this option, or use the $I-
  1101.           compiler directive to locally disable I/O checking.  You can then
  1102.           check the value of the IOResult function to determine if an error
  1103.           occurred.
  1104.  
  1105. Strict var-strings ($V compiler directive)
  1106.           Most Pascal compilers will not let you pass a string variable as a
  1107.           VAR parameter unless both VAR parameters are exactly the same type
  1108.           and length.  For example, you normally cannot pass a STRING[80] typed
  1109.           variable to a procedure having a VAR parameter defined (via a type
  1110.           declaration) as STRING[128].  However, clearing this option, Turbo
  1111.           Pascal will allow you to pass mismatched string types.
  1112.  
  1113. Complete Boolean evaluation  ($B compiler directive)
  1114.           The Turbo Pascal compiler normally performs short-circuited boolean
  1115.           expression evaluation.  This means that, as the expression is
  1116.           evaluated at run time, as soon the result is definitely known the
  1117.           remainder of the expression will be ignored.  This is particularly
  1118.           useful in testing an index value before using it in an array
  1119.           subscript, in for example,
  1120.           if Index < 10  and (X[Index]=9)  then...
  1121.           If  Index is 10 or greater, the program will not execute the array
  1122.           subscript.  However, by enabling this compiler option, you can force
  1123.           the program to always fully evaluate the expression.  This might be
  1124.           used when calling a function within an expression, and your program
  1125.           must use an intended side affect of the function call.
  1126.  
  1127. Extended syntax ($X compiler directives)
  1128.           When this option is set, Turbo Pascal will let you call a function
  1129.           just like it was a procedure.  In effect, the result of the function
  1130.           will be ignored and thrown away. This feature does not apply to any
  1131.           System unit functions.
  1132.  
  1133. 8087/80287 ($N compiler directive)
  1134.           When set, this results in the compiler generating code for the 8087
  1135.           or 80x87 math coprocessor chip.  This option is often used in
  1136.           conjunction with the Emulation mode option; see below.
  1137.  
  1138. Emulation ($E compiler directive)
  1139.           When this option is set, the compiler will link in routines that
  1140.           automatically detect the prescence or abscence of the floating point
  1141.           processors.  If the math processor is installed, then it will be
  1142.           used; if the math processor is not installed, the routines that
  1143.           simulate the processor are called instead.  To generate code for all
  1144.           types of machines, regardless of whether or not they have a floating
  1145.           point chip, select both the 8087/80287 and the Emulation options.  If
  1146.           you know that the target machine definitely has a coprocessor, then
  1147.           disable this option but enable the 8087/80287 option.
  1148.  
  1149. Debug information ($D compiler directive)
  1150.           If you are going to use either the built-in or the standalone
  1151.           debuggers, set this option on so that the compiler will generate
  1152.           internal line number tables to assist in matching generated code to
  1153.           program source statements.  You can selectively disable debug
  1154.           information on a per unit basis; such units cannot have their
  1155.           procedures or functions traced into.
  1156.  
  1157. Local symbols ($L compiler directive)
  1158.           This option should be set so that the compiler builds a table of all
  1159.           local variables and constant identifiers.  You can then refer to
  1160.           these during a debugging session.
  1161.  
  1162. Conditional defines
  1163.           In Turbo Pascal programs, you can conditionally compile sections of
  1164.           the program depending upon the settings or definition of certain
  1165.           symbols.  A common use is to create an identifier called Debug.  
  1166.           Special debug code is then inserted into the program source,
  1167.           surrounded by the conditional compilation instructions, {$IFDEF
  1168.           Debug} and {$ENDIF}.  If Debug is defined in a $DEFINE statement,
  1169.           then the code is generated.  If Debug is not defined, such as when
  1170.           the program has been completed and thoroughly tested, then the
  1171.           special debugging code will not be generated as part of the final
  1172.           executable.  Use this input field in the Compiler Options box to
  1173.           define any particular symbols that your program references.  Multiple
  1174.           symbols may be separated by semicolons.  Important note:  Symbols
  1175.           used as part of the $IFDEF check are not the same as symbols used as
  1176.           program constants and variables.
  1177.  
  1178. Options Menu/Memory sizes
  1179.      The Memory sizes dialog displays prompts for Stack size, Low heap limit
  1180. and High heap limit.  You can enter new values that are appropriate for your
  1181. program.  For example, the TVSHELL program described in the Borland Pascal
  1182. Developer's Guide, Chapters 11-12, "Turbo Vision Tutorial" loads and executes
  1183. other programs.  If the High heap limit is set to the maximum default value, no
  1184. memory would be available to load and execute another program.  Many programs
  1185. can execute with a relatively small heap, which is the area that dynamic
  1186. variables are allocated from, and this limit can be safely set to a small value
  1187. such as 8 or 16k.
  1188.  
  1189. Options Menu/Linker
  1190.      On the Linker options dialog, you can indicate if you wish to produce a
  1191. link map file, showing where each unit has been placed in the executable. 
  1192. Select one of the options Segments, Public or Detailed, or  specifiy no link
  1193. file by selecting Off.
  1194.      The linker normally links programs using a memory based buffer.  However,
  1195. for large programs you may need to select a disk based buffer, which is slower,
  1196. but can accomodate much larger programs.  Select either the Memory or the Disk
  1197. radio button to choose the correct setting for your programs.
  1198.  
  1199. Options Menu/Debugger
  1200.      Use this dialog to specify which debugger you plan to use:  either select
  1201. the Integrated debugger, which is the default, or choose the Standalone
  1202. debugger.  
  1203.      You may also select the type of display swapping in effect.  If you are
  1204. using a second monochrome monitor for debugging output, the Display swapping
  1205. settings are ignored.  Otherwise, the none selection causes the debugger to
  1206. maintain control of the screen at all times.  The default setting, Smart,
  1207. causes the screen to display your program's output every time a procedure call
  1208. is made or any time that it believes an I/O will occur to the screen.  When the
  1209. program encounters a break point or error, control returns to the debugger. 
  1210. Lastly, the Always selection forces the screen to swap back and forth between
  1211. the debugger and the program at every statement execution.  Generally, you will
  1212. want to use the Smart swapping mode of operation.
  1213.  
  1214. Options Menu/Directories
  1215.      The directories dialog specifies the location of various files.  Values
  1216. should be entered as follows:
  1217.  
  1218. EXE & TPU Directory
  1219.           Enter the name of the subdirectory that will contain all created .EXE
  1220.           and .TPU files.  Leave this field blank if you want to store these
  1221.           files at the same location as where the source is found.
  1222.  
  1223. Include directories
  1224.           If this field is blank, include files will be read from the source
  1225.           file directory.  Otherwise, you can specifiy a different directory or
  1226.           directories where the compiler should look for the included source
  1227.           files.  By separating directory names with a semicolon, you can enter
  1228.           a large number of directories, each of which will be searched by the
  1229.           compiler.
  1230.  
  1231. Unit directories
  1232.           Like the Include directories field, you can type multiple
  1233.           subdirectory names to be searched by the compiler and linker when
  1234.           accessing program units.  Multiple directory names should be
  1235.           separated by semicolons.
  1236.  
  1237. Object directories
  1238.           If you reference assembly language routines in your program, specify
  1239.           the location of the *.OBJ files using this field.  Again, multiple
  1240.           directories may be entered by separating each name with a semicolon.
  1241.  
  1242. Options Menu/Environment
  1243.      Choose this selection to set a variety of parameters including 25 or 43/50
  1244. line modes.  A submenu containing Preferences, Editor, Mouse, Startup and
  1245. Colors items is displayed.
  1246.  
  1247. Options Menu/Environment - Preferences
  1248. Use the Preferences dialog to choose:
  1249.  
  1250.        Use the Screen sizes option to select 25 or 43/50 line modes (CGA is
  1251.        always 25 lines only, EGA is 43 lines and VGA is 50 lines);
  1252.  
  1253.        Use the Auto Save selections to choose automatic saving of  modified
  1254.        editor files each time the Run command is given; To choose automatic
  1255.        saving of all environment selections when you exit the IDE;  and to
  1256.        choose saviing of the desktop so that it the desktop will be restored
  1257.        upon return to the IDE. 
  1258.  
  1259.        Use the Source tracking option to specify how source files should be
  1260.        loaded when in debug mode or when a run time error occurs.  For example,
  1261.        if you are single stepping into a procedure whose source is not
  1262.        currently loaded, the IDE will read in that source file.  If you have
  1263.        selected the New window option for Source tracking a new window is
  1264.        created and the file loaded into that window.  If the Current window
  1265.        option is chosed, then the contents of the top most window are replaced
  1266.        with the new file.
  1267.  
  1268.        Use the Desktop file options to specify that the TURBO.DSK desktop file
  1269.        be saved in either the Current directory or to the Configuration file
  1270.        directory, which is whatever directory contains the TURBO.TP
  1271.        configuration file.
  1272.  
  1273. Options Menu/Environment - Editor Options
  1274.      Select Editor options to specify any of the following:
  1275.  
  1276.        Create backup files:  If set, any file that you edit will retain the
  1277.        immediately preceding version in a file having the same filename but a
  1278.        .BAK extension.
  1279.  
  1280.        Autoindent mode:  If set, the IDE editor provides an intelligent,
  1281.        automatic indenting feature to ease typing the standard indentation used
  1282.        in Pascal source.
  1283.  
  1284.        Use tab characters:  Normally, the IDE editor converts tabs to spaces. 
  1285.        However, if this option is set, then the editor inserts an actual ASCII
  1286.        9 tab character into the text.  See Tab size, below.
  1287.  
  1288.        Optimal fill:  If this option is set, leading blanks on each line are
  1289.        converted, if possible, to a combination of ASCII 9 tab characters and
  1290.        spaces.  See Tab size, below.
  1291.  
  1292.        Backspace unindents:  If set, this option operates roughly the opposite
  1293.        of the automatic indent feature.  When you backspace, the cursor will
  1294.        move to the preceding indent level.    This is especially useful when
  1295.        entering lots of nested begin - end statements.
  1296.  
  1297.        Cursor through tabs:  If the Use tab characters option is set, and ASCII
  1298.        9 tab characters are being inserted in the text, then and only then does
  1299.        this option apply.  When ASCII 9 characters are embedded in the text,
  1300.        pressing the left or right arrow key moves across the entire gap of
  1301.        blanks that may appear at the site of an ASCII 9 character.  If the
  1302.        Cursor through tabs option is set to true, the cursor key will advance
  1303.        across the ASCII 9 as if it was a group of blank characters.
  1304.  
  1305.        Tab size:  Tab size specifies how far apart, in characters, the tab
  1306.        positions are located.  The default value is 8 but may be set to any
  1307.        value from 2 to 16.
  1308.  
  1309.  
  1310. Options Menu/Environment - Mouse
  1311.      Use the Mouse options dialog to set a function from the right mouse button
  1312. (Nothing, Topic search, Go to cursor, Breakpoint, Evaluate or Add watch), to
  1313. select reversal of the left and right mouse buttons (especially useful if you
  1314. use the mouse with your left hand).  Using the Mouse options dialog, you can
  1315. also set the mouse double click rate by sliding a marker across a scroll bar
  1316. ranging from Slow to Fast.
  1317.  
  1318. Options Menu/Environment - Startup
  1319.      This dialog controls a variety of IDE start up options.  In addition to
  1320. specifying start up options here, you can append the command line switches
  1321. shown below when you first start the IDE by typing, for example,
  1322.      TURBO /D+
  1323. where a + following the switch is equivalent to setting that option on, and a
  1324. minus "-" is equivalent to turning the option off.
  1325.  
  1326.        Dual monitor support (/D): Set this option if you have both a graphics
  1327.        monitor for user program output and a monochrome monitor for debugging
  1328.        information output.  You can switch which monitor is the debugging
  1329.        monitor using commands appropriate for your computer, before you start
  1330.        running Turbo Pascal.
  1331.  
  1332.        Graphics screen save (/G):  If set, an additional 8k of RAM will be
  1333.        allocated to a buffer used for saving all of graphics memory while
  1334.        debugging programs that operate in graphics mode.
  1335.  
  1336.        EGA/VGA palette save (/P):  This function is useful when your program
  1337.        manipulates the palette registers of the EGA and VGA video cards.  If
  1338.        set, the IDE will restore the registers to their original values each
  1339.        time the screen switches between user output and debug output.
  1340.  
  1341.        CGA snow checking (/N):  Some of the original CGA adaptors used single
  1342.        ported memory, where the video circuitry and the CPU would sometimes
  1343.        interfere with one another's access to the CGA video memory and produce
  1344.        a flicker effect referred to as "snow".  If you are using a CGA monitor
  1345.        that experiences snow, this option should be set on (it is set by
  1346.        default).  However, if your monitor does not experience snow, you should
  1347.        turn this option off.  Monitors that do not display snow will have
  1348.        faster output with this option disabled.
  1349.  
  1350.        LCD color set (/L):  If you are using the IDE on a typical lap top
  1351.        computer with an LCD screen, you should select this option to provide a
  1352.        more readable display.
  1353.  
  1354.        Use expanded memory (/X):  If you have installed an EMS driver and have
  1355.        EMS memory available, Turbo Pascal will automatically attempt to use the
  1356.        EMS memory.  The use of EMS will substantially improve the performance
  1357.        of Turbo Pascal, particularly when working with very large programs. 
  1358.        Youcan also use the /S option to specify a RAM disk or other fast disk
  1359.        area where Turbo Pascal can locate its swap file.
  1360.  
  1361.        Load TURBO.TPL (/T):  By turning this option off, you can increase the
  1362.        memory available for compiling, as long as you then link in the
  1363.        SYSTEM.TPU unit.
  1364.  
  1365.        Window heap size (/W):  The window heap size specifies, in k bytes, the
  1366.        amount of RAM reserved to manage the windows on the desktop.  If you do
  1367.        not normally open multiple files, you can reduce the memory allocation. 
  1368.        Values may be in the range from 24k to 64k.
  1369.  
  1370.        Editor heap size (/E):  The default value of 28k is sufficient for most
  1371.        users especially if you are using a RAM disk, EMS or a fast hard disk.. 
  1372.        However, if you are swapping to a slow disk, you should set this to a
  1373.        much larger value, as needed, between 28k up to 128k.  
  1374.  
  1375.        Overlay heap size (/O):  The overlay heap size can be adjusted between
  1376.        64k and 256k.  If you are using EMS, you can enlarge the amount of
  1377.        memory available for compiling by reducing this to 64k with no
  1378.        degradation in performance.
  1379.  
  1380.        Swap file directory (/S):  If you are not using EMS, you can specify the
  1381.        location of the swap by typing in the directory where the file should be
  1382.        created.  See Use expanded memory, above.
  1383.  
  1384.  
  1385. Options Menu/Environment - colors
  1386.      Use the colors dialog to select different colors, both foreground and
  1387. background, for each component in the IDE.  Selecting colors is a fairly
  1388. cumbersome undertaking because of the large variety of components and possible
  1389. color choices.  If you elect to use this feature, you will probably want to
  1390. change the colors on only  a few items.
  1391.  
  1392. Options Menu/Save options
  1393.      Use Save options to specify where the name and location of the TURBO.TP
  1394. configuration file (you can create different and multiple configuration files
  1395. if you wish).  Use the Retrieve options dialog to reload a previously saved
  1396. configuration file.
  1397.  
  1398.  
  1399. The Window Menu
  1400.      Use the Window pulldown menu to manage the display of the IDE windows. 
  1401. From this pulldown, you can select between the active user program screen or
  1402. the debugger screen, as well as access a variety of other windows and
  1403. functions.  Some of the functions such as Size/Move are directly accessible
  1404. using the mouse and are presented on the Window menu so that keyboard-only
  1405. users can perform the same functions.
  1406.  
  1407.        Size/Move (Ctrl-F5):  To move the active window, select Size/Move and
  1408.        then use the arrow keys to drag the window.  If you press Shift-arrow
  1409.        keys, you can change the window's size.  Press Enter when you are
  1410.        finished making your adjustments, or press the Esc key to abandon your
  1411.        changes.  If you are using a mouse, you can move a window by clicking
  1412.        and dragging on the window border, and you can adjust the windows size
  1413.        by clicking and dragging on the lower right corner.  
  1414.  
  1415.        Zoom (F5):  Zooming is the action that takes place when a small window
  1416.        is enlarged to cover the entire desktop.  You can zoom a small window to
  1417.        maximum size by selecting this function, or you click the mouse on the
  1418.        up arrow located at the upper right corner of the window, or by double
  1419.        clicking on the top most line of the window (other than on the close
  1420.        icon).
  1421.  
  1422.        Tile:  The tile function arranges the windows as if they were tiles on a
  1423.        floor; each window is sized and positioned so that all the windows can
  1424.        be seen at the same time with no overlapping windows, hence the name
  1425.        "tiling".
  1426.  
  1427.        Cascade:  When windows are cascaded, instead of tiled, the windows are
  1428.        overlapped so that other than the top most window, each of the windows
  1429.        shows only its upper border and left side border peeking around from
  1430.        behind.  You can select a window by clicking on it with the mouse or by
  1431.        using the Next command on the Window menu.
  1432.  
  1433.        Next (F6):  Use Next and Previous to cycle through the list of windows,
  1434.        making the next or previous window in the display become the active
  1435.        window.
  1436.  
  1437.        Previous (Shift-F6):  See above.
  1438.  
  1439.        Close (Alt-F3):  To close a window, click on the window's close icon in
  1440.        the upper left corner, or make the window active and choose the Close
  1441.        function.
  1442.  
  1443.        Watch:    If you have previously closed the Watch window, or if it has
  1444.        become hidden behind another window, select Watch to make the Watch
  1445.        window visible on the display.
  1446.  
  1447.        Register:  Select Register to make this window, a display of CPU
  1448.        registers and their contents, visible on the screen.
  1449.  
  1450.        Output:  Output opens a small window (whose size can be increased)
  1451.        displaying output from any DOS commands you may have executed by
  1452.        shelling to DOS (from the File menu).  If your program generates simple
  1453.        text output using Writeln's, this output too can be seen in the Output
  1454.        window.  If you are debugging a 25 line output application within a 50
  1455.        line VGA display, you can see both your program's output and the
  1456.        debugger information at the same time.
  1457.  
  1458.        Call stack (Ctrl-F3):  Displays a list of procedures or functions called
  1459.        (and currently active).  You can use this procedure list to quickly jump
  1460.        to the corresponding source code by moving the highlight bar up or down
  1461.        with the arrow keys, so that it points to the item of interest, and
  1462.        pressing Enter.  The edit window will then jump to the location where
  1463.        the procedure where was called.
  1464.  
  1465.        User Screen (Alt-F5):  This function switches the entire screen to show
  1466.        your program's output only and is used frequently during debug sessions.
  1467.        Press any key or click the mouse to return to the IDE.  
  1468.  
  1469.        List (Alt-0):  Displays a window containing a list of every active
  1470.        window on the IDE desktop.  You can jump directly to any of the windows
  1471.        by selecting or clicking the desired item.
  1472.  
  1473.  
  1474.